-
Notifications
You must be signed in to change notification settings - Fork 207
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Modify k6 load tests #5181
Merged
Merged
Modify k6 load tests #5181
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
openverse-bot
added
🧱 stack: frontend
Related to the Nuxt frontend
🟧 priority: high
Stalls work on the project or its dependents
🧰 goal: internal improvement
Improvement that benefits maintainers, not users
💻 aspect: code
Concerns the software code in the repository
labels
Nov 25, 2024
Latest k6 run output1
Footnotes
|
obulat
force-pushed
the
modify-k6-load-test
branch
from
November 25, 2024 08:39
d6f7301
to
916e7db
Compare
krysal
approved these changes
Nov 27, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm eager to know the results of these tests!
obulat
force-pushed
the
modify-k6-load-test
branch
3 times, most recently
from
November 29, 2024 05:18
d7686eb
to
3f56433
Compare
obulat
force-pushed
the
modify-k6-load-test
branch
from
November 29, 2024 08:12
3f56433
to
4704c71
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
💻 aspect: code
Concerns the software code in the repository
🧰 goal: internal improvement
Improvement that benefits maintainers, not users
🟧 priority: high
Stalls work on the project or its dependents
🧱 stack: frontend
Related to the Nuxt frontend
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes
Fixes #5179 by @obulat
Description
The frontend k6 load test runs against the local Nuxt app on every CI run. Initially, when the test was added to run against the staging environment, it failed due to CPU limitations. To address this, we temporarily increased the staging CPU from 0.25 vCPU to 2 vCPU. However, our goal is to restore the staging environment to its previous resource levels while still reliably detecting potential memory leaks.
The k6 load tests run agains the locally-ran Nuxt app in the GitHub-hosted CI runners on every CI run, and then again after the PR is merged, against the Nuxt app deployed on staging. The GitHub-hosted CI runners use 4 CPU processor and 16 GB of RAM 1.
This PR adjusts the k6 test settings to maintain a constant request rate while preventing the tests from overwhelming the staging environment. It uses the
constant-arrival-rate
executor, which means that the rate of requests per seconds is constant, and does not depend on whether response was received or not.After experimenting with different configurations, I think the following values will be a good start:
Here are some statistics from the k6 tests in staging, as well as the last 3 CI runs in this PR:
Deployment
For better testing how the k6 tests catch memory leaks and whether the new values are appropriate, I think the following process should be followed:
Testing Instructions
Confirm that the deployment plan makes sense or suggest improvements.
Check the CI report for the load test and see that the requests per minutes are lower, and the test finishes within 4 minutes.
Checklist
Update index.md
).main
) or a parent feature branch.ov just catalog/generate-docs
for catalogPRs) or the media properties generator (
ov just catalog/generate-docs media-props
for the catalog or
ov just api/generate-docs
for the API) where applicable.Developer Certificate of Origin
Developer Certificate of Origin
Footnotes
https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories ↩